Recording companion

ABSTRACT

Active gameplay of a video game on a computer gaming device is overseen by a platform-level in-game recording companion that executes separately from any of a plurality of different video games. During active gameplay of the video game, the active gameplay is continuously and automatically buffered to a temporary storage buffer. During active gameplay the computer gaming device receives a command to save a segment of the active gameplay for subsequent viewing. While displaying gameplay of the currently-executing video game, an interface for the platform-level in-game recording companion is displayed. The segment of the active gameplay is saved from the temporary storage buffer to a library of the platform-level in-game recording companion.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/606,871, filed Jan. 27, 2015, which claims priority to U.S.Provisional Application No. 61/947,939, filed Mar. 4, 2014 and entitled“IN-GAME RECORDING COMPANION”, the complete contents of each of whichare hereby incorporated herein by reference for all purposes.

BACKGROUND

When viewers watch live video broadcasts, events may occur that may beof particular interest to the viewers. Such events may be recorded inorder for the viewers to analyze and enjoy again what has already takenplace. Similarly, when users are playing video games, events may occurduring live gameplay that are of particular interest to the users, andthe users may desire to view such events after they occur or to sharesuch events with others.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter. Furthermore,the claimed subject matter is not limited to implementations that solveany or all disadvantages noted in any part of this disclosure.

Various implementations relating to providing recordings are disclosed.In one implementation, active gameplay of a video game on a computergaming device is overseen by a platform-level in-game recordingcompanion that executes separately from any of a plurality of differentvideo games. During active gameplay of the video game, the activegameplay is continuously and automatically buffered to a temporarystorage buffer. During active gameplay the computer gaming device mayreceive a command to save a segment of the active gameplay forsubsequent viewing. Without interrupting the active gameplay, thesegment of the active gameplay is saved from the temporary storagebuffer to a library of the platform-level in-game recording companion.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 schematically shows a computer gaming device according to animplementation of this disclosure.

FIG. 2 schematically shows a graphics pipeline of a computer gamingdevice according to an implementation of this disclosure.

FIG. 3 shows a digital video recording method for video games accordingto an implementation of this disclosure.

FIG. 4 shows a digital video recording method for video games accordingto an implementation of this disclosure.

FIG. 5 shows a digital video recording method for video games accordingto an implementation of this disclosure.

FIGS. 6-9 show examples of an in-game recording companion alongside acurrently playing video game.

FIGS. 10-12 show examples of different user initiated in-game savecommands that trigger saving of a gameplay segment.

FIG. 13 shows an example of a companion computing device according to animplementation of this disclosure.

FIG. 14 shows a computer gaming system and a natural user interface(NUI) system according to an implementation of this disclosure.

DETAILED DESCRIPTION

In-game recording functionality may be provided for any video game at aplatform level of a computer gaming device. For example, during activegameplay of a video game, active gameplay may be buffered to a temporarystorage buffer with a platform-level in-game recording companion that isexecuted separate from any particular video game of the computer gamingdevice. Upon receipt of a command to save a particular segment of activegameplay, the platform-level in-game recording companion may save theactive gameplay segment from the temporary storage buffer to a libraryof a platform-level in-game recording companion.

FIG. 1 schematically shows a computer gaming device 100 according to animplementation of this disclosure. The computer gaming device 100 isshown in simplified form. The computer gaming device 100 may take anysuitable form including a game console, entertainment computing device,portable gaming device, tablet, laptop, desktop, smartphone, virtual- oraugmented-reality device, or other computing device that may be used toexecute a video game, live broadcast, and/or other content.

The computer gaming device 100 includes an operating system 102configured to manage hardware resources of the computer gaming device.Further, the operating system 102 may be configured to monitor, oversee,or otherwise manage operation of various software programs, services,and applications running on the computer gaming device 100. For example,a video game 104 may be executed or played on the computer gaming deviceand the operating system may manage operation of the video game. Thevideo game 104 may be one of a plurality of different video games thatthe computer gaming device is configured to play.

Furthermore, a platform-level in-game recording companion 106A and/orplatform-level in-game recording companion 106B may be executed on thecomputer gaming device. In particular, the platform-level in-gamerecording companion may be executed separately from the video game 104and any other video games of the plurality of different video gamesconfigured to be played on the computer gaming device 100. In oneexample, a platform-level in-game recording companion 106A is anapplication that runs while the video game is being played. In anotherexample, a platform-level in-game recording companion 106B is a part ofthe operating system. It will be noted that the platform-level in-gamerecording companion may also be used to record video content other thanvideo games, such as a live broadcast or any other content beingdisplayed.

The platform-level in-game recording companion may be configured tooversee any currently playing video game or other content on thecomputer gaming device 100 and provide in-game recording functionalityfor that currently playing video game. In particular, since theplatform-level in-game recording companion is executed at the platformlevel and not within any particular video game, the in-game recordingfunctionality provided by the platform-level in-game recording companionmay be the same for every video game played on the computer gamingdevice. Moreover, video games that are compatible with the computergaming device may be made less complex relative to video games withbuilt-in game specific in-game recording functionality. Game developersneed not design game-specific in-game recording experiences. Rather,every video game may interface with the platform-level in-game recordingcompanion for in-game recording functionality without additional effortfrom the developer. Such in-game recording functionality will bediscussed in further detail below with reference to an in-game digitalvideo recording method 300 shown in FIG. 3, in-game digital videorecording method 400 shown in FIG. 4, and in-game digital videorecording method 500 shown in FIG. 5.

FIG. 2 schematically shows a graphics and audio pipeline 200 accordingto an implementation of this disclosure. The graphics and audio pipelinemay be implemented in the computer gaming device 100 shown in FIG. 1, orvarious stages of the graphics pipeline may be distributed throughouttwo or more different computing devices (e.g., a local gaming machineand a remote computing system running a gaming service). The graphicsand audio pipeline 200 enables platform-level in-game recordingfunctionality.

The graphics and audio pipeline 200 comprises one or more centralprocessing units (CPU) 202, one or more graphics processing and audioprocessing units (GPU/APU) 204, an audio/video encoder 206, a randomaccess memory (RAM) device 208 including a ring buffer 210, anaudio/video decoder 212, an input/output interface device 214, a storagedevice 216, and a display 218. It will be understood that the graphicsand audio pipeline may include additional and/or alternative processinglogic and other hardware blocks without departing from the scope of thisdisclosure. It will be further understood that the graphics processingand audio processing at GPU/APU 204 may be performed at a single unifiedprocessing circuit as illustrated or at separate processing circuits.

In one example, the CPU 202 fetches game instructions from the videogame 104. The CPU 202 decodes the instructions into game data includingdrawing instructions for rendering video imagery of gameplay and soundinstructions for producing audio data to be provided to speakers toproduce the gameplay audio of the video game of the video game 104. TheCPU 202 passes the drawing instructions, sound instructions, and othergame data to the GPU/APU 204. The GPU/APU 204 executes the drawinginstructions to produce rendered image frames of the video game 104 andthe sound instructions to produce the audio data to be provided to thespeakers to produce the gameplay audio of the video game 104(collectively referred to as active gameplay data). For example, theimage frames rendered by the GPU/APU 204 may be uncompressed image data(e.g., every pixel in an image frame has full color definition).Similarly, the audio data produced by GPU/APU 204 may be uncompressed.The GPU/APU 204 sends the active gameplay data for display on thedisplay 218.

Additionally, the GPU/APU 204 sends the rendered image frames and theaudio data of the active gameplay to the audio/video encoder 206 to becompressed or otherwise encoded. For example, the rendered image framesand the audio data may be encoded into MPEG-4, H.264, or anothersuitable audio/visual format. Alternatively, the rendered image framesand the audio data may be encoded separately in a suitable video onlyformat and a suitable audio only format. The audio/video encoder 206sends the encoded active gameplay data to the RAM device 208 forbuffering in the ring buffer 210. The RAM device 208 may include anysuitable type of memory including SDRAM (e.g., DDR, GDDR, etc.).Moreover, the RAM device 208 may be any suitable size.

In some implementations, the CPU and the GPU/APU may be combined in asingle package. In some implementations, the CPU or the GPU/APU may beomitted. In some implementations, the RAM device may be integrated withthe CPU and/or GPU/APU in a system-on-chip (SOC) configuration.

The ring buffer 210 may be automatically and continuously loaded withactive gameplay data from the audio/video encoder 206 until filled. Oncethe ring buffer 210 is filled, an oldest portion of active gameplay datamay be overwritten with new active gameplay data. Accordingly, a mostrecently played portion of active gameplay from a currently playingvideo game may be automatically buffered in the ring buffer 210 in acontinuous fashion. The ring buffer 210 may be any suitable size. In oneexample, the ring buffer 210 has a capacity of five minutes worth ofactive gameplay data. In other words, the ring buffer continuouslybuffers the most recent five minutes of gameplay of the currentlyplaying video game.

It will be understood that the ring buffer is merely one example of astorage mechanism, and the active gameplay data may be stored in the RAMdevice in any suitable fashion. For example, the active gameplay may bebuffered in any suitable storage mechanism that abides by thefirst-in-first-out (FIFO) principle. In other words, any storage devicethat may function as a temporary storage buffer for the active gameplaydata.

When an in-game recording is requested during active gameplay of thecurrently playing video game, an active gameplay segment from the mostrecently played portion of active gameplay buffered in the ring buffer210 may be saved to a library of a platform-level in-game recordingcompanion on the storage device 216 via I/O 214. A variety of differentactive gameplay segments can be saved to the storage device 216 in thismanner. Thus, the variety of different active gameplay segments may besimultaneously stored by the storage device 216. Any of the differentactive gameplay segments may be independently accessed at a later time(e.g., for viewing, editing, sharing, etc.).When a particular activegameplay segment is accessed for viewing, the information pertaining tothat segment may be provided from the storage device 216 to anaudio/video decoder 212. The audio/video decoder 212 decodes the encodedgameplay data of the saved active gameplay segment into uncompressedimage data and sends the uncompressed image data directly to the display218. The display 218 displays the saved active gameplay segment.Additionally, the audio/video decoder 212 decodes the encoded gameplaydata of the saved active gameplay segment into uncompressed audio datawhich may be sent to the speakers to produce the gameplay audio of theactive gameplay segment.

It will be understood that the saved active gameplay segment may includeany suitable amount of the active gameplay data stored in the ringbuffer. For example, the saved gameplay segment may include some or allof the active gameplay data stored in the ring buffer. In one example, adefault length of the saved active gameplay segment is thirty seconds.In some implementations, a length of the saved active gameplay segmentused for in-game recording may be adjusted via the platform-levelin-game recording companion. In some implementations, a length of thesaved gameplay segment used for in-game recording may be adjusted on aper video game basis, or a per gameplay scenario basis, for exampleaccording to a parameter specified by the video game via an applicationprogramming interface (API).

It will be understood that because the gameplay data that is buffered tothe ring buffer is rendered by the GPU/APU prior to being buffered, thebuffered active gameplay segment may be saved directly from the ringbuffer without having to be reprocessed by the GPU/APU. Such an approachfacilitates saving of a segment of active gameplay on demand with littleor no performance loss. On the other hand, if game data that is notrendered is buffered to the ring buffer, then the game data may berendered by the GPU/APU before being saved.

In some implementations, the audio/video encoder 206 and the audio/videodecoder 212 may be incorporated with the RAM device 208, and the GPU/APU204 sends the rendered image data and the audio data corresponding tothe active gameplay directly to the RAM device. Correspondingly, in suchimplementations, the RAM device 208 may send a buffered gameplay segmentdirectly to the display 218 for immediate viewing.

Encoded active gameplay data may be sent to the storage device 216 forlong term storage based on a variety of different triggers. For example,the active gameplay data may be sent to the storage device 216 inresponse to user selection of a particular gameplay segment of thecurrently playing video game that the user desires to view again at alater time. In another example, the video game may automatically selecta particular gameplay segment for storage in the storage device 216. Forexample, a gameplay segment may be automatically selected for storage ina video game DVR responsive to a user achieving a new high score,accomplishing a game-determined feat (e.g., defeating AI boss, defeatingmulti-player opponent, encountering multi-player friend, etc.), orotherwise having an in-game experience that the video game deems worthy.

For storage of active gameplay data, the audio/video encoder 206 and/orthe RAM 208 sends the encoded active gameplay data to the input/outputinterface device 214, and the input/output interface device 214 performsa write operation to write the encoded active gameplay data to thestorage device 216. Correspondingly, for retrieval of active gameplaydata, the input/output interface device 214 performs a read operation onthe storage device 216 to retrieve the encoded active gameplay data. Itwill be understood that the storage device may take any suitable formincluding an internal or external hard disk drive, solid state drive,network accessible storage service, and/or other suitable storagedevice(s).

In some implementations, the audio/video encoder 206 and the audio/videodecoder 212 may be incorporated with the RAM device 208 or otherwisebypassed, and the GPU/APU 204 may send the rendered image data and theaudio data corresponding to the active gameplay directly to theinput/output interface device 214 for storage on the storage device 216.

It is to be understood that by automatically and continuously bufferingthe active gameplay of the currently playing video game to the RAMdevice, the most recently played portion of active gameplay from thecurrently playing video game may be available for storage. Inparticular, since the active gameplay may be stored directly from theRAM device without any additional read/write operations, the activegameplay may be stored with little or no performance loss.

FIG. 3 shows an in-game digital video recording method 300 for videogames and/or other content according to an implementation of thisdisclosure. For example, the in-game digital video recording method 300may be performed with the platform-level in-game recording companion ofthe computer gaming device 100 shown in FIG. 1.

At 302, the method 300 may include overseeing active gameplay of a videogame with a platform-level in-game recording companion that executesseparately from the video game. For example, the platform-level in-gamerecording companion may monitor game events to recognize when an in-gamerecording is to be stored.

At 304, the method 300 may include continuously and automaticallybuffering the active gameplay to a temporary storage buffer of thecomputer gaming device. For example, rendered image frames and audiodata of active gameplay may be continuously encoded and stored in a ringbuffer of a RAM device while the currently playing video game is beingplayed.

At 306, the method 300 may optionally include receiving from a cameraimage data temporally corresponding to a segment of active gameplay. Forexample, image data of a user playing the game may be captured by acamera peripheral connected to the computer gaming device. The imagedata may then be provided to the computer gaming device and bufferedwith and/or incorporated with the temporally corresponding activegameplay in the storage buffer.

At 308, the method 300 may optionally include receiving from amicrophone audio data temporally corresponding to a segment of activegameplay. For example, audio data of a user playing the game may becaptured by a microphone peripheral connected to the computer gamingdevice. The audio data may then be provided to the computer gamingdevice and may be buffered with and/or incorporated with the temporallycorresponding active gameplay in the temporary storage buffer.

At 310, the method 300 may optionally include buffering the image datafrom 306 and the audio data from 308 to the temporary storage buffer.

At 312, the method 300 may include, during active gameplay of the videogame, determining whether a command to save an active gameplay segmentfor subsequent viewing is received. In some cases, receiving the commandto save a segment of the active gameplay may include recognition of aprogrammatically defined trigger event within the active gameplay of thevideo game. For example, during active gameplay of a soccer simulationvideogame, the platform-level in-game recording companion may recognizethe scoring of a goal as a command to save the active gameplay includingthe scoring of the goal.

In other cases, receiving the command to save the segment of activegameplay may include receiving the command via a microphone. In othercases, receiving the command to save the segment of active gameplay mayinclude receiving a command sent from a companion computing device via anetwork connection. It will be understood that the command to save thesegment of active gameplay may also include gesture recognition,controller input, interaction with an interface of the platform-levelin-game recording companion, or any other suitable interaction with thecomputer gaming device. If it is determined that a command to save thesegment of active gameplay is given, then the method 300 moves to 314 or316. Otherwise, the method 300 returns to 304.

Optionally, at 314, the method 300 may include editing the activegameplay segment prior to saving the gameplay segment to the library ofthe platform-level in-game recording companion. For example, a starttime, a stop time, and a length of the saved active gameplay segment maybe specified by the user via transport controls provided by theplatform-level in-game recording companion. The user may be providedwith instant editing options, including options for combining the activegameplay segment with other recorded content, including voice-over,video-over, etc. The other recorded content may be recordedsimultaneously with or separately from the active gameplay segment.Combining the other recorded content may include overlaying the contenton top of a portion of the active gameplay segment, such as placing acombined video-over recording on top of a portion of the active gameplaysegment, or decreasing the volume of the active gameplay in order tobetter hear a combined voice-over. Additionally, editing may includeinputting metadata to associate with the active gameplay segment, suchas a title, annotations, tags, etc. It will be understood that theplatform-level in-game recording companion may provide any suitabletransport or editing controls for editing the active gameplay segment.

At 316, the method 300 may include, without interrupting active gameplayof the videogame, saving a segment of active gameplay from the temporarystorage buffer to a library of the platform-level in-game recordingcompanion. In some implementations, the gameplay segment may be saveddirectly from the ring buffer of the RAM device to storage associatedwith the library of the platform-level in-game recording companion. Forexample, a portion of a hard disk drive may be allocated for theplatform-level in-game recording companion, and the segment of activegameplay may be written to the hard disk drive for long term storage andplayback at a later time. Further, in some implementations, the segmentof active gameplay may be sent to a remote computing machine via aservice for sharing the gameplay clip with other users.

In some cases, the segment of active gameplay saved may include activegameplay that precedes the command (e.g., save a predetermined orselected duration of gameplay leading up to the command). In othercases, the segment of active gameplay saved may include active gameplaythat follows the command. In the cases above, the duration of thesegment of active gameplay saved may be configurable to include anysuitable duration not to exceed the capacity of the temporary storagebuffer. Furthermore, the platform-level in-game recording companion maybe configured such that the active gameplay segment includes gameplaypreceding and following the command. For example, upon receipt of thecommand to save the segment of active gameplay, the platform-levelin-game recording companion may save a segment including thirty secondsof active gameplay preceding the command and 30 seconds of activegameplay following the command.

In other implementations, the duration of the segment of active gameplaymay be defined by the receipt of multiple commands denoting a beginningand an end of the segment of active gameplay. These implementations willbe discussed in detail with reference to FIG. 4.

FIG. 4 shows an in-game digital video recording method 400 for videogames according to an implementation of this disclosure. For example,the in-game digital video recording method 400 may be performed with theplatform-level in-game recording companion of the computer gaming device100 shown in FIG. 1

At 402, the method 400 may include overseeing active gameplay of a videogame with a platform-level in-game recording companion that executesseparately from the video game. For example, the platform-level in-gamerecording companion may monitor game events to recognize when an in-gamesegment of active gameplay is to be saved.

At 404, the method 400 may include continuously and automaticallybuffering the active gameplay to a temporary storage buffer of thecomputer gaming device. For example, rendered image frames and audiodata of active gameplay may be continuously encoded and stored in a ringbuffer of a RAM device while the currently playing video game is beingplayed.

At 406, the method 400 may include, during active gameplay of the videogame, determining whether a first command indicating a beginning of thesegment of the active gameplay is received. In some cases, the commandmay be generated through determining that a programmatically definedtrigger event within the video game has occurred as discussed above. Insome cases, the command indicating the beginning of a segment of activegameplay may be given via user input, by voice command, gesture, orcontroller input, for example. Additionally, the platform-level in-gamerecording companion may display an interface including executableobjects configured to effectuate issuance of the command in a splitscreen layout with the active gameplay as shown in FIGS. 6-9. Theinterface of the platform-level in-game recording companion may also besent to a companion computing device over a network as shown in FIG. 13.

If it is determined that a command indicating the beginning of a segmentof active gameplay is received, then the method 400 moves to 408.Otherwise, the method 400 returns to 402.

At 408, the method 400 may include, during active gameplay of thevideogame, determining whether a second command indicating an end pointof the segment of the active gameplay is received. As discussed abovefor the command to indicate the beginning of the segment of activegameplay, the command may be received via a programmatically definedtrigger within active gameplay, voice command, user interaction with theinterface of the platform-level in-game recording companion, or othersuitable mechanism. If it is determined that a command indicating theend point of the segment of active gameplay is received, then the method400 moves to 410 or 412. Otherwise, the method 400 returns to 408.

Optionally, at 410, the method 400 may include editing the activegameplay segment prior to saving the gameplay segment to the library ofthe platform-level in-game recording companion as discussed above.

At 412, the method 400 includes, without interrupting active gameplay ofthe videogame, saving the segment of active gameplay, as defined by thecommands indicating the beginning and end point of the segment of activegameplay, from the temporary storage buffer to a library of theplatform-level in-game recording companion. It will be understood thatsaving the segment of active gameplay from the temporary storage bufferto the library of the platform-level in-game recording companion may beperformed as described above.

FIG. 5 shows an in-game digital video recording method 500 for videogames and/or other content according to an implementation of thisdisclosure. For example, the in-game digital video recording method 500may be performed with the platform-level in-game recording companion ofthe computer gaming device 100 shown in FIG. 1.

At 502, the method 500 may include overseeing active gameplay of a videogame with a platform-level in-game recording companion that executesseparately from the video game. For example, the platform-level in-gamerecording companion may monitor game events to recognize when an in-gamerecording is to be stored.

At 504, the method 500 may include continuously and automaticallybuffering the active gameplay to a temporary storage buffer of thecomputer gaming device. For example, rendered image frames and audiodata of active gameplay may be continuously encoded and stored in a ringbuffer of a RAM device while the currently playing video game is beingplayed.

At 506, the method 500 may include, during active gameplay of thevideogame, determining whether a command to save a segment of activegameplay for subsequent viewing is received. It will be understood thatthe platform-level in-game recording companion may receive the commandto save the segment of active gameplay as described above for FIG. 3. Ifit is determined that command to save the segment of active gameplay isgiven, then the method 500 moves to 508 or 510. Otherwise, the method500 returns to 504.

Optionally, at 508, the method 500 may include editing the activegameplay segment prior to saving the gameplay segment to the library ofthe platform-level in-game recording companion as described above.

At 510, the method 500 may include, without interrupting active gameplayof the videogame, saving a segment of active gameplay from the temporarystorage buffer to a library of the platform-level in-game recordingcompanion. It will be understood that saving the segment of activegameplay from the temporary storage buffer to the library of theplatform-level in-game recording companion may be performed as describedabove.

After saving the segment of the active gameplay to the library of theplatform-level in-game recording companion, the method 500 may continueactive gameplay of the video game. As such, the method 500 returns to502. As such, without interrupting active gameplay of the videogame, asecond, third, fourth, etc. segment of active gameplay may be saved fromthe temporary storage buffer to a library of the platform-level in-gamerecording companion. Each subsequent segment may be saved independent ofthe other segments. Further, two or more segments may be saved withoutactive gameplay ever being interrupted.

The above described methods facilitate in-game recording of anycurrently playing video game playing on a computer gaming device. Inparticular, because the method is performed with the platform-levelin-game recording companion, the in-game recording functionality worksfor any video game that is compatible with the computer gaming device.Moreover, the in-game recording experience is the same for any of thevideo games. For example, the platform-level in-game recording companionmay have the same visual appearance and controls regardless of theparticular game with which it is being used.

FIGS. 6-9 show an interface for the platform-level in-game recordingcompanion 602 displayed alongside a currently playing video game 604. Asshown in the illustrated examples, the platform-level in-game recordingcompanion is snapped to the right of the currently playing video game.However, other arrangements may be implemented. In the examples of FIGS.6-9, the currently playing video game 604 may be continuously executedwith full game action. The currently playing video game need not pause,stop, or be switched away from or put out of focus, in order toeffectuate in-game recording.

FIG. 6 shows that the interface for the platform-level in-game recordingcompanion 602 includes various executable objects 606, 608, and 610 formanaging in-game recordings. For example, executable stop object 606 maybe configured to effectuate issuance of a command indicating an endpointof a segment of active gameplay. Executable start object 608 may beconfigured to effectuate issuance of a command indicating a beginning ofa segment of active gameplay. Executable display object 610 may beconfigured to effectuate viewing a library of the platform-level in-gamerecording companion where previously saved segments of active gameplaymay be accessed.

Executable edit object 616 may be configured to effectuate issuance of acommand to edit the segment of the active gameplay. Upon execution ofedit object 616, platform-level in-game recording companion 602 mayprovide additional editing functionality to the user. For example,platform-level in-game recording companion 602 may provide the useroptions to select a duration of active gameplay within the segment ofactive gameplay to remove from the segment of active gameplay, thusclipping extraneous active gameplay from the segment of active gameplay.Furthermore, platform-level in-game recording companion 602 may allowthe user to combine two or more different segments of active gameplay.Platform-level in-game recording companion 602 may allow the user toremove or suppress audio and/or image data corresponding to the segmentof active gameplay (e.g., received locally from a camera/microphone).Further, additional audio data and/or chat log data from socialinteractions temporally corresponding to the segment of active gameplaymay be removed. Thus, the editing functionality provided byplatform-level in-game recording companion may be employed by the userto protect the privacy of the user. Such editing functionality may beaccessible via Executable edit object 616, another user interfaceelement, voice command, a game controller button, and/or any othersuitable mechanism.

The platform-level in-game recording companion 602 may be configured tosave segments of active gameplay without obscuring the currently playingvideo game. The platform-level in-game recording companion may besimultaneously displayed in a snapped configuration, as illustrated.Alternatively, the platform-level in-game recording companion may beexecuted without a GUI component. In either example, commands may beprovided to the companion via voice, gesture, controller, or any othersuitable mechanism while the game is unobscured.

FIG. 7 shows another aspect of in-game recording companion 602. Flexibleoptions are provided to set a recording length duration. For example,executable objects 612A, 612B, 612C, 612D, and 612E each may beconfigured to effectuate setting a duration of the segment of activegameplay saved by the platform-level in-game recording companion. Theseoptions may be provided when a user selects a command to end a clip, forexample. Thumbnails optionally may be provided from the buffercontaining the most recently played portions of active gameplay to showwhat was occurring at the beginning of each of the listed intervals. Forexample, the executable objects may take the form of thumbnails, orthumbnails may be displayed adjacent to the executable objects. Theplatform-level in-game recording companion may provide executableobjects specifying a duration of active gameplay preceding the receiptof a command to save the segment, a duration of active gameplayfollowing the receipt of the command to save the segment, or bothpreceding and following such that receipt of the command to save thesegment occurs within the saved segment of active gameplay.

FIGS. 8 and 9 show other aspects of the interface of the platform-levelin-game recording companion 602. Specifically, FIG. 8 shows a view inwhich a user is provided an executable start object 608 to indicate thebeginning of a segment of active gameplay from the currently playingvideo game 604 as it is rendered. Additionally, interface 602 mayinclude a timer 614 providing an elapsed time since beginning thesegment. In addition to providing an indication of a duration of acurrent segment of active gameplay, timer 614 may also provide a director indirect indication of the remaining capacity of the temporarystorage buffer. FIG. 9 shows options for indicating the endpoint of thesegment of active gameplay from the currently playing video game 604. Asdiscussed above for FIG. 8, timer 614 indicates a current duration ofthe segment of active gameplay to be saved. Executable stop object 606may be actuated effectuating a command indicating the endpoint of thesegment of active gameplay.

The various options provided in FIGS. 6-9, as well as other in-gamerecording options, may be controlled remotely using a companionexperience through a linked companion device.

FIGS. 10 and 11 show an example scenario where a natural user input(NUI) interface system 1000 monitors an environment including a humansubject 1002. The NUI interface system is positioned above a display1004. The NUI interface system 1000 and the display 1004 are operativelycoupled with a computer gaming device (not shown). The NUI interfacesystem 1000 may be configured to image the environment as well as detectaudio in the environment.

FIG. 10 shows an example scenario where the human subject 1002 performsa waving gesture 1006 with his arm 1008. The waving gesture 1006 may berecognized by the NUI interface system 1000 as a command that triggersthe saving of a segment of active gameplay of a currently playing videogame. The NUI interface system 1000 sends an indication of the gestureto the platform-level in-game recording companion. In response toreceiving the indication, the platform-level in-game recording companionsaves the segment of active gameplay from the most recently playedportion of rendered gameplay or indicates a beginning or end point ofthe segment of active gameplay as the gameplay is rendered. The wavinggesture is not limiting. Other gestures may be used.

FIG. 11 shows an example scenario where the human subject 1002 speaks aphrase 1100 (e.g., “RECORD THAT!!!”, “START RECORD!!!”, or “STOPRECORD!!!”). The spoken phrase may be recognized by the NUI interfacesystem 1000 as a voice command that triggers the saving of a segment ofactive gameplay from a currently playing video game. The NUI interfacesystem 1000 sends an indication of the command to the platform-levelin-game recording companion. In response to receiving the indication,the platform-level in-game recording companion saves the segment ofactive gameplay from the most recently played portion of active gameplayor indicates the beginning or endpoint of the segment of active gameplayas the gameplay is rendered.

FIG. 12 shows a scenario where a hand 1200 of a user is holding agamepad controller 1202. The gamepad controller 1202 may be operativelycoupled with the computer gaming device (not shown). The user mayprovide input to the gamepad controller 1202 that indicates a command tosave a segment of active gameplay. The gamepad controller 1102 sends anindication of the command to the platform-level in-game recordingcompanion. In response to receiving the indication, the platform-levelin-game recording companion saves the segment of active from the mostrecently played portion of active gameplay or indicates the beginning orendpoint of the segment of active gameplay as the gameplay is rendered.For example, the user input may include a particular combination ofbuttons to trigger saving the segment of active gameplay. In someimplementations, the combination of buttons may be the same for any ofthe different video games.

FIG. 13 illustrates a companion computing device 1306 usable to remotelyeffectuate issuance of a command to save a segment of active gameplayfrom a currently playing video game and/or save segments of other typesof content. As shown, computer gaming device 1302 displays activegameplay 1304 of a basketball video game, and companion computing device1306 displays a platform-level in-game recording companion userinterface 1308. In such an implementation, the computer gaming devicemay send the user interface 1308 for the platform-level in-gamerecording companion to companion computing device 1306 via the network.User interface 1308 may include an executable stop object 1312configured to effectuate a command indicating an endpoint of the segmentof active gameplay, an executable start object 1314 configured toindicate a beginning of the segment of active gameplay, and anexecutable display object 1316 configured to effectuate viewing of thelibrary of the platform-level in-game recording companion. Additionally,user interface 1308 may include timer 1310 or any other suitableexecutable objects that may be used to control the saving, displaying,editing, etc. of a segment of active gameplay via the platform-levelin-game recording companion user interface 1308. The companion computingdevice 1306 may be used in conjunction with computer gaming device 1302to provide a secondary gaming experience that enhances gameplay of avideo game. Non-limiting examples of companion computing device 1306include a portable gaming device, a mobile computing device, a tabletcomputer, and a smartphone.

In one example, the user provides input to the companion computingdevice that indicates a command to the platform-level in-game recordingcompanion. The user interface 1308 is sent from the computer gamingdevice to the companion computing device 1306. An executable object isactuated effectuating issuance of a command to save a segment of activegameplay (e.g., directly via wired or wireless communication, or via anetwork accessible service in communication with the companion computingdevice 1306 and computer gaming device 1302. In response to receivingthe command, the platform-level in-game recording companion saves thesegment of active gameplay from the most recently played portion ofactive gameplay. Alternately, start executable object 1314 or stopexecutable object 1312 may be actuated effectuating the issuance ofcommands indicating the beginning or endpoint of the segment of activegameplay as the gameplay is rendered. In another example, the userprovides input to the companion computing device 1306 that indicates acommand to the platform-level in-game recording companion. For example,a user actuates executable display object 1316 to effectuate viewing thelibrary of the platform-level in-game recording companion in order toview a recently saved segment of active gameplay. The command is sentfrom the companion computing device 1306 to the platform-level in-gamerecording companion on the computer gaming device via the in-gamerecording companion user interface 1308. In response to receiving thecommand, the platform-level in-game recording companion commands thecomputer gaming device and/or the companion computing device to displaythe library of the platform-level in-game recording companion. The usermay then select the segment of active gameplay to be viewed. It will benoted that while the companion computing device 1306 is shown being usedin conjunction with a computer gaming system playing a video game, thecompanion computing device may be used with other computing systems andmay be used with types of video content other than video games.

In some implementations, the methods and processes described herein maybe tied to a computing system of one or more computing devices. Inparticular, such methods and processes may be implemented as acomputer-application program or service, an application-programminginterface (API), a library, and/or other computer-program product.

FIG. 14 schematically shows a non-limiting implementation of a computergaming system 1400 that can enact one or more of the methods andprocesses described above. Computer gaming system 1400 is shown insimplified form. Computer gaming system 1400 may take the form of one ormore console game systems, personal computers, server computers, tabletcomputers, home-entertainment computers, network computing devices,gaming devices, mobile computing devices, mobile communication devices(e.g., smart phone), and/or other computing devices. For example,computer gaming system 1400 may take the form of computer gaming device100 shown in FIG. 1 or companion computing device 1306 shown in FIG. 13.

Computer gaming system 1400 includes a logic machine 1402 and a storagemachine 1404. Computer gaming system 1400 may optionally include adisplay subsystem 1406, a communication subsystem 1408, and/or othercomponents not shown in FIG. 14.

Logic machine 1402 includes one or more physical devices configured toexecute instructions. For example, the logic machine may be configuredto execute instructions that are part of one or more applications,services, programs, routines, libraries, objects, components, datastructures, or other logical constructs. Such instructions may beimplemented to perform a task, implement a data type, transform thestate of one or more components, achieve a technical effect, orotherwise arrive at a desired result.

The logic machine may include one or more processors configured toexecute software instructions. Additionally or alternatively, the logicmachine may include one or more hardware or firmware logic machinesconfigured to execute hardware or firmware instructions. Processors ofthe logic machine may be single-core or multi-core, and the instructionsexecuted thereon may be configured for sequential, parallel, and/ordistributed processing. Individual components of the logic machineoptionally may be distributed among two or more separate devices, whichmay be remotely located and/or configured for coordinated processing.Aspects of the logic machine may be virtualized and executed by remotelyaccessible, networked computing devices configured in a cloud-computingconfiguration.

Storage machine 1404 includes one or more physical devices configured tohold instructions executable by the logic machine to implement themethods and processes described herein. When such methods and processesare implemented, the state of storage machine 1404 may betransformed—e.g., to hold different data.

Storage machine 1404 may include removable and/or built-in devices.Storage machine 1404 may include optical memory (e.g., CD, DVD, HD-DVD,Blu-Ray Ray Disc, etc.), semiconductor memory (e.g., RAM, EPROM, EEPROM,etc.), and/or magnetic memory (e.g., hard-disk drive, floppy-disk drive,tape drive, MRAM, etc.), among others. Storage machine 1404 may includevolatile, nonvolatile, dynamic, static, read/write, read-only,random-access, sequential-access, location-addressable,file-addressable, and/or content-addressable devices.

It will be appreciated that storage machine 1404 includes one or morephysical devices. However, aspects of the instructions described hereinalternatively may be propagated by a communication medium (e.g., anelectromagnetic signal, an optical signal, etc.) that is not held by aphysical device for a finite duration.

Aspects of logic machine 1402 and storage machine 1404 may be integratedtogether into one or more hardware-logic components. Such hardware-logiccomponents may include field-programmable gate arrays (FPGAs), program-and application-specific integrated circuits (PASIC/ASICs), program- andapplication-specific standard products (PSSP/ASSPs), system-on-a-chip(SOC), and complex programmable logic devices (CPLDs), for example.

The terms “module,” “program,” and “engine” may be used to describe anaspect of computer gaming system 1400 implemented to perform aparticular function. In some cases, a module, program, or engine may beinstantiated via logic machine 1402 executing instructions held bystorage machine 1404. For example, the platform-level in-game recordingcompanion may be instantiated via logic machine 1402 executinginstructions held by storage machine 1404. It will be understood thatdifferent modules, programs, and/or engines may be instantiated from thesame application, service, code block, object, library, routine, API,function, etc. Likewise, the same module, program, and/or engine may beinstantiated by different applications, services, code blocks, objects,routines, APIs, functions, etc. The terms “module,” “program,” and“engine” may encompass individual or groups of executable files, datafiles, libraries, drivers, scripts, database records, etc.

When included, display subsystem 1406 may be used to present a visualrepresentation of data held by storage machine 1404. This visualrepresentation may take the form of a graphical user interface (GUI). Asthe herein described methods and processes change the data held by thestorage machine, and thus transform the state of the storage machine,the state of display subsystem 1406 may likewise be transformed tovisually represent changes in the underlying data. Display subsystem1406 may include one or more display devices utilizing virtually anytype of technology. Such display devices may be combined with logicmachine 1402 and/or storage machine 1404 in a shared enclosure, or suchdisplay devices may be peripheral display devices.

When included, input subsystem 1408 may comprise or interface with oneor more user-input devices such as a keyboard, mouse, touch screen, orgame controller. In some embodiments, the input subsystem may compriseor interface with selected natural user input (NUI) componentry. Suchcomponentry may be integrated or peripheral, and the transduction and/orprocessing of input actions may be handled on- or off-board. Example NUIcomponentry may include a microphone for speech and/or voicerecognition; an infrared, color, stereoscopic, and/or depth camera formachine vision and/or gesture recognition; a head tracker, eye tracker,accelerometer, and/or gyroscope for motion detection and/or intentrecognition; as well as electric-field sensing componentry for assessingbrain activity.

When included, communication subsystem 1408 may be configured tocommunicatively couple computer gaming system 1400 with one or moreother computing devices. Communication subsystem 1408 may include wiredand/or wireless communication devices compatible with one or moredifferent communication protocols. As non-limiting examples, thecommunication subsystem may be configured for communication via awireless telephone network, or a wired or wireless local- or wide-areanetwork. In some implementations, the communication subsystem may allowcomputer gaming system 1400 to send and/or receive messages to and/orfrom other devices via a network such as the Internet.

As noted above, an NUI interface system 1401 may be configured toprovide user input to computer gaming system 1400. To this end, the NUIinterface system includes a logic machine 1410 and a storage machine1412. To detect the user input, the NUI interface system receiveslow-level input (i.e., signal) from an array of sensory components,which may include one or more visible light cameras 1414, depth cameras1416, and microphones 1418. Other example NUI componentry may includeone or more infrared or stereoscopic cameras; a head tracker, eyetracker, accelerometer, and/or gyroscope for motion detection and/orintent recognition; as well as electric-field sensing componentry forassessing brain activity. In some implementations, the NUI interfacesystem may comprise or interface with one or more user-input devicessuch as a keyboard, mouse, touch screen, or game controller.

The NUI interface system processes the low-level input from the sensorycomponents to yield an actionable, high-level input to computer gamingsystem 1400. Such action may generate corresponding text-based userinput or other high-level commands, which are received in computergaming system 1400. In some implementations, NUI interface system andsensory componentry may be integrated together, at least in part. Inother implementations, the NUI interface system may be integrated withthe computer gaming system and receive low-level input from peripheralsensory components.

An example provides, on a computer gaming system, a digital videorecording method for video games. The method may be executed on acomputer gaming device configured to play a plurality of different videogames. The method comprising overseeing active gameplay of a video gameof the plurality of different video games with a platform-level in-gamerecording companion that executes separately from any of the pluralityof different video games. During active gameplay of the video game, theactive gameplay is continuously and automatically buffered to atemporary storage buffer of the computer gaming device. The methodfurther comprises, during active gameplay of the video game, receiving acommand to save a segment of the active gameplay for subsequent viewingand, without interrupting active gameplay of the video game, saving thesegment of the active gameplay from the temporary storage buffer to alibrary of the platform-level in-game recording companion. In such anexample, receiving the command may additionally or alternatively includereceiving a voice command via a microphone. In such an example,receiving the command may additionally or optionally include receiving acommand sent from a companion computing device via a network. In such anexample, receiving the command may additionally or alternatively includerecognizing a programmatically defined trigger event within the activegameplay. In such an example, the segment of active gameplay mayadditionally or alternatively precede the command. In such an example,the segment of active gameplay may additionally or alternatively followthe command. In such an example, receiving the command may additionallyor alternatively include receiving a first command indicating abeginning of the segment of the active gameplay and receiving a secondcommand indicating an end point of the segment of the active gameplay.In such an example, the method may additionally or alternativelycomprise displaying an interface for the platform-level in-gamerecording companion in a split screen layout with the active gameplay.The interface may additionally or alternatively include an executablestart object configured to effectuate issuance of a command indicating abeginning of the segment of the active gameplay, an executable stopobject configured to effectuate issuance of a command indicating an endpoint of the segment of the active gameplay, and an executable displayobject configured to effectuate viewing of the library of theplatform-level in-game recording companion. In such an example, themethod may additionally or alternatively comprise sending an interfacefor the platform-level in-game recording companion to a companioncomputing device, where the interface includes an executable startobject configured to effectuate issuance of a command indicating abeginning of the segment of the active gameplay, an executable stopobject configured to effectuate issuance of a command indicating an endpoint of the segment of the active gameplay, and an executable displayobject configured to effectuate viewing of the library of theplatform-level in-game recording companion. In such an example,buffering the active gameplay may additionally or alternatively includereceiving from a camera image data of a user temporally corresponding tothe segment of active gameplay, receiving from a microphone audio dataof a user temporally corresponding to the segment of active gameplay,and buffering the image data and the audio data to the temporary storagebuffer. In such an example, the method may additionally or alternativelycomprise upon saving a first segment of the active gameplay to thelibrary of the platform-level in-game recording companion and duringactive gameplay, receiving a second command to save a second segment ofthe active gameplay for subsequent viewing, where the second segment ofactive gameplay includes active gameplay not included in the firstsegment of active gameplay, and without any interruption in activegameplay of the video game from the first segment of active gameplay tothe second segment of active gameplay, saving the second segment of theactive gameplay from the temporary storage buffer to a library of theplatform-level in-game recording companion independent of the firstsegment. Any or all of the above-described examples may be combined inany suitable manner in various implementations.

Another example provides, on a computer gaming system, a digital videorecording method for video games. The method may be executed on acomputer gaming device configured to play a plurality of different videogames. The method comprising overseeing active gameplay of a video gameof the plurality of different video games with a platform-level in-gamerecording companion that executes separately from any of the pluralityof different video games. During active gameplay of the video game, theactive gameplay is continuously and automatically buffered to atemporary storage buffer of a random access memory device of thecomputer gaming device. The method further comprises, during activegameplay of the video game, receiving a command to save a segment of theactive gameplay for subsequent viewing where the command is sent from acompanion computing device via a network and, without interruptingactive gameplay of the video game, saving the segment of the activegameplay from the temporary storage buffer of the random access memorydevice to a library of the platform-level in-game recording companion.In such an example, the segment of active gameplay may additionally oralternatively precede the command. In such an example, the segment ofactive gameplay may additionally or alternatively follow the command. Insuch an example, the method may additionally or alternatively comprisesending an interface for the platform-level in-game recording companionto a companion computing device, where the interface includes anexecutable start object configured to effectuate issuance of a commandindicating a beginning of the segment of the active gameplay, anexecutable stop object configured to effectuate issuance of a commandindicating an end point of the segment of the active gameplay, and anexecutable display object configured to effectuate viewing of thelibrary of the platform-level in-game recording companion. In such anexample, receiving the command may additionally or alternatively includereceiving a first command indicating a beginning of the segment of theactive gameplay and receiving a second command indicating an end pointof the segment of the active gameplay. In such an example, buffering theactive gameplay may additionally or alternatively include receiving froma camera image data of a user temporally corresponding to the segment ofactive gameplay, receiving from a microphone audio data of a usertemporally corresponding to the segment of active gameplay, andbuffering the image data and the audio data to the temporary storagebuffer. In such an example, the method may additionally or alternativelycomprise upon saving a first segment of the active gameplay to thelibrary of the platform-level in-game recording companion and duringactive gameplay, receiving a second command to save a second segment ofthe active gameplay for subsequent viewing, where the second segment ofactive gameplay includes active gameplay not included in the firstsegment of active gameplay, and without any interruption in activegameplay of the video game from the first segment of active gameplay tothe second segment of active gameplay, saving the second segment of theactive gameplay from the temporary storage buffer to a library of theplatform-level in-game recording companion independent of the firstsegment. Any or all of the above-described examples may be combined inany suitable manner in various implementations.

In another example, a storage machine holding instructions executable bya logic machine to instantiate a platform-level in-game recordingcompanion that executes separately from any of a plurality of differentvideo games is provided. The platform-level in-game recording companionis configured to oversee active gameplay of a video game of theplurality of different video games and, during active gameplay of thevideo game, continuously and automatically buffer the active gameplay toa temporary storage buffer of a random access memory device. Duringactive gameplay of the video game, receive from a microphone a voicecommand to save a segment of the active gameplay for subsequent viewing,and without interrupting active gameplay of the video game, save thesegment of the active gameplay from the temporary storage buffer of therandom access memory device to a library of the platform-level in-gamerecording companion. In such an example, the storage machine mayadditionally or alternatively hold instructions where the platform-levelin-game recording companion is further configured to, upon saving afirst segment of the active gameplay from the temporary storage bufferof the random access memory storage device to the library of theplatform-level in-game recording companion and during active gameplay,receive a second voice command to save a second segment of the activegameplay for subsequent viewing, where the second segment of activegameplay includes active gameplay not included in the first segment ofactive gameplay, and without any interruption in active gameplay of thevideo game from the first segment of active gameplay to the secondsegment of active gameplay, save the second segment of the activegameplay from the temporary storage buffer of the random access memorystorage device to a library of the platform-level in-game recordingcompanion independent of the first segment. Any or all of theabove-described examples may be combined in any suitable manner invarious implementations.

It will be understood that the configurations and/or approachesdescribed herein are exemplary in nature, and that these specificimplementations or examples are not to be considered in a limitingsense, because numerous variations are possible. The specific routinesor methods described herein may represent one or more of any number ofprocessing strategies. As such, various acts illustrated and/ordescribed may be performed in the sequence illustrated and/or described,in other sequences, in parallel, or omitted. Likewise, the order of theabove-described processes may be changed.

The subject matter of the present disclosure includes all novel andnonobvious combinations and subcombinations of the various processes,systems and configurations, and other features, functions, acts, and/orproperties disclosed herein, as well as any and all equivalents thereof.

1. A digital video recording method for video games, the methodcomprising: on a computer gaming device configured to play a pluralityof different video games, overseeing active gameplay of a video game ofthe plurality of different video games with a platform-level in-gamerecording companion that executes separately from any of the pluralityof different video games; during active gameplay of the video game,continuously and automatically buffering the active gameplay to atemporary storage buffer of the computer gaming device; during activegameplay of the video game, receiving a command to save a segment of theactive gameplay for subsequent viewing; while displaying gameplay of thevideo game, displaying an interface for the platform-level in-gamerecording companion; and saving the segment of the active gameplay fromthe temporary storage buffer to a library of the platform-level in-gamerecording companion.
 2. The method of claim 1, wherein the command tosave the segment of the active gameplay is received from a gamecontroller.
 3. The method of claim 1, wherein the platform-level in-gamerecording companion is an application that runs while the video game isplayed.
 4. The method of claim 1, wherein the platform-level in-gamerecording companion is part of an operating system.
 5. The method ofclaim 1, wherein the active gameplay is buffered in the temporarystorage buffer after rendering.
 6. The method of claim 1, wherein theactive gameplay is buffered in the temporary storage buffer beforerendering.
 7. The method of claim 1, wherein the interface for theplatform-level in-game recording companion includes an executable startobject configured to effectuate issuance of a command indicating abeginning of the segment of the active gameplay.
 8. The method of claim1, wherein the interface for the platform-level in-game recordingcompanion includes an executable stop object configured to effectuateissuance of a command indicating an end point of the segment of theactive gameplay.
 9. The method of claim 1, wherein the interface for theplatform-level in-game recording companion includes an executable editobject configured to effectuate issuance of a command to edit thesegment of the active gameplay.
 10. The method of claim 1, wherein theinterface for the platform-level in-game recording companion includes anexecutable display object configured to effectuate viewing of thelibrary of the platform-level in-game recording companion.
 11. Themethod of claim 1, wherein the interface for the platform-level in-gamerecording companion includes an executable display object specifying aduration of active gameplay preceding the receipt of a command to savethe segment.
 12. The method of claim 1, wherein the interface for theplatform-level in-game recording companion includes an executabledisplay object specifying a duration of active gameplay following thereceipt of the command to save the segment.
 13. The method of claim 1,wherein the interface for the platform-level in-game recording companionis displayed to a side of the active gameplay.
 14. The method of claim1, wherein gameplay of the video game is displayed with full game actionwhile the interface for the platform-level in-game recording companionis displayed.
 15. The method of claim 1, wherein gameplay of the videogame is displayed without pausing while the interface for theplatform-level in-game recording companion is displayed.
 16. The methodof claim 1, wherein gameplay of the video game is displayed withoutstopping while the interface for the platform-level in-game recordingcompanion is displayed.
 17. The method of claim 1, wherein gameplay ofthe video game is displayed in focus while the interface for theplatform-level in-game recording companion is displayed.
 18. A videogame console system, comprising: a game controller including one or morebuttons; and a computer gaming device including: a temporary storagebuffer; a long term storage device; an input subsystem configured torecognize activation of each of the one or more buttons of the gamecontroller; and a logic machine configured to separately execute aplurality of different video games and a platform-level in-gamerecording companion, wherein the platform-level in-game recordingcompanion is configured to: continuously and automatically buffer, tothe temporary storage buffer, a video of active gameplay of acurrently-executing video game of the plurality of different videogames; display an interface for the platform-level in-game recordingcompanion while displaying gameplay of the currently-executing videogame; and save, from the temporary storage buffer to the long termstorage device, a segment of the video of active gameplay of thecurrently-executing video game responsive to the input subsystemrecognizing activation of a button of the one or more buttons of thegame controller.
 19. The video game console system of claim 18, whereinthe interface for the platform-level in-game recording companion isdisplayed responsive to activation of a button of the one or morebuttons of the game controller.
 20. A computing device, comprising: alogic machine; and a storage machine holding instructions executable bythe logic machine to instantiate a platform-level in-game recordingcompanion that executes separately from any of a plurality of differentvideo games, the platform-level in-game recording companion configuredto: oversee active gameplay of a currently-executing video game of theplurality of different video games; during active gameplay of thecurrently-executing video game, continuously and automatically bufferthe active gameplay to a temporary storage buffer; during activegameplay of the currently-executing video game, receive a command tosave a segment of the active gameplay for subsequent viewing; whiledisplaying gameplay of the currently-executing video game, display aninterface for the platform-level in-game recording companion; and savethe segment of the active gameplay from the temporary storage buffer toa library of the platform-level in-game recording companion.